﻿Public Class xtf_ABMusuario

    Dim ulg_row As DataRow
    Dim obj_Usuario As cls_usuario_ = Nothing

    Public Sub New()
        InitializeComponent()
        CargarTipoDocumento_()
        CargarGrupo_()
        AgregarValidaciones()
        If UsuarioLOG.esroot Then
            lci_v1.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always
            lci_v2.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always
            lci_esroot.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always
            Me.Height = 360
        Else
            Me.Height = 340
        End If
    End Sub

    Public Overrides Sub bbi_imprimir_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbi_imprimir.ItemClick
        lcg_1.BeginUpdate()
        lbl_Contraseña.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never
        lbl_ConfirmarContraseña.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never
        lcg_1.EndUpdate()
        lac_general.ShowPrintPreview()
        lcg_1.BeginUpdate()
        lbl_Contraseña.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always
        lbl_ConfirmarContraseña.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always
        lcg_1.EndUpdate()
    End Sub

    Public Overrides Sub CargarObjetos()
        CargarTipoDocumento_()
        CargarGrupo_()
    End Sub

    Private Sub CargarTipoDocumento_()
        'Dim tmp_obj As Object = Nothing
        'If Not IsNothing(cbo_TipoDocumento.SelectedItem) Then
        '    tmp_obj = cbo_TipoDocumento.SelectedItem
        'End If
        'cbo_TipoDocumento.Properties.Items.Clear()

        'Dim TipoDocumento_ As New cls_tipodocumento_
        'If TipoDocumento_.CargarTodos Then
        '    For Each TipoDocumento As cls_tipodocumento_ In TipoDocumento_.Items
        '        cbo_TipoDocumento.Properties.Items.Add(TipoDocumento)
        '    Next
        '    cbo_TipoDocumento.SelectedIndex = 0
        '    cbo_TipoDocumento.Enabled = True

        '    If Not IsNothing(tmp_obj) Then
        '        For Each TipoDocumento As cls_tipodocumento_ In cbo_TipoDocumento.Properties.Items
        '            If TipoDocumento.idtipodocumento = tmp_obj.idtipodocumento Then
        '                cbo_TipoDocumento.SelectedItem = TipoDocumento
        '            End If
        '        Next
        '    End If


        'Else
        '    cbo_TipoDocumento.SelectedItem = Nothing
        '    cbo_TipoDocumento.Enabled = False
        'End If
        Dim TipoDocumento_ As New cls_tipodocumento_
        TipoDocumento_.CargarTodos()
        cargarCombo(cbo_TipoDocumento, TipoDocumento_.Items)
    End Sub

    Private Sub CargarGrupo_()
        Dim tmp_obj As Integer = 0
        tmp_obj = cbo_Grupo.EditValue
        Dim grupo_ As New cls_grupo_
        grupo_.CargarTodos()
        cargarCombo(cbo_Grupo, grupo_.Items)
        cbo_Grupo.EditValue = IIf(tmp_obj <> 0, tmp_obj, cbo_Grupo.EditValue)
    End Sub

    Public Shadows Sub Nuevo(ByRef listado As Form)
        Try
            frm_listado = listado
            Me.Text = CType(frm_listado, xtf_ListadoBase).lbl_modulo.Text & " - Nuevo"
            obj_Usuario = New cls_Usuario_
            btn_Registro.Enabled = False
            Me.Show()
        Catch ex As Exception
            'Dim frmError As New frm_ErrorManager(ex.Message)
        End Try
    End Sub

    Public Shadows Sub Modificar(ByRef Usuario As cls_usuario_, ByRef listado As Form, ByRef row As DataRow)
        If IsNothing(obj_Usuario) Then
            obj_Usuario = New cls_usuario_
        End If
        obj_Usuario = Usuario
        frm_listado = listado
        ulg_row = row : bbi_imprimir.Enabled = True

        Me.Text = CType(frm_listado, xtf_ListadoBase).lbl_modulo.Text & " - " & obj_Usuario.ToString
        txt_ID.Text = obj_Usuario.idusuario
        txt_Usuario.Text = obj_Usuario.usuario
        txt_Contraseña.Text = obj_Usuario.contraseña
        txt_Contraseña2.Text = obj_Usuario.contraseña

       
        btn_Registro.Enabled = True

        txt_Nombres.Text = obj_Usuario.tercero.nombres
        txt_Apellido.Text = obj_Usuario.tercero.apellido

        chk_esroot.Checked = obj_Usuario.esroot

        cbo_TipoDocumento.EditValue = obj_Usuario.tercero.idtipodocumento
        cbo_Grupo.EditValue = obj_Usuario.idgrupo

        txt_NumeroDocumento.Text = obj_Usuario.tercero.numeroducumento

        Select Case obj_Usuario.tercero.tipo
            Case cls_tercero_.enu_tipotercero.Cliente
                lbl_TipoTercero.Text = "Cliente"
                ActivarTercero(False)
            Case cls_tercero_.enu_tipotercero.Persona
                lbl_TipoTercero.Text = "Persona"
                ActivarTercero(False)
            Case cls_tercero_.enu_tipotercero.Personal
                lbl_TipoTercero.Text = "Personal"
                ActivarTercero(False)
            Case cls_tercero_.enu_tipotercero.Proveedor
                lbl_TipoTercero.Text = "Proveedor"
                ActivarTercero(False)
            Case cls_tercero_.enu_tipotercero.Usuario
                lbl_TipoTercero.Text = "Usuario"
                ActivarTercero(True)
        End Select

        Usuario.grupo = Nothing
        Usuario.tercero = Nothing
        Me.Show()

    End Sub



    Private Sub ActivarTercero(ByVal Estado As Boolean)
        'txt_Nombres.Enabled = Estado
        'txt_Apellido.Enabled = Estado
        'If Estado Then
        '    If cbo_TipoDocumento.Properties.DataSource.Count > 0 Then
        '        cbo_TipoDocumento.Enabled = Estado
        '    End If
        'Else
        '    cbo_TipoDocumento.Enabled = Estado
        'End If
        'txt_NumeroDocumento.Enabled = Estado
        txt_Nombres.Enabled = Estado
        txt_Apellido.Enabled = Estado
        If Estado Then
            If Not IsNothing(cbo_TipoDocumento.Properties.DataSource) Then
                cbo_TipoDocumento.Enabled = Estado
            End If
        Else
            cbo_TipoDocumento.Enabled = Estado
        End If
        txt_NumeroDocumento.Enabled = Estado
    End Sub

    Public Overrides Function ComprobarDatos() As Boolean
        If Not cbo_TipoDocumento.Enabled Then
            ErrManagerShow("001008", Me)
            Return False
        End If
        If Not cbo_Grupo.Enabled Then
            ErrManagerShow("001011", Me)
            Return False
        End If
        If Not ControlarValidaciones() Then
            ErrManagerShow("000004", Me)
            Return False
        End If
        If Not txt_Contraseña.Text = txt_Contraseña2.Text Then
            ErrManagerShow("000007", Me)
            Return False
        End If
        Return True
    End Function

    Public Shadows Sub btn_Guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Guardar.Click
        If ComprobarDatos() Then
            obj_Usuario.usuario = txt_Usuario.Text
            obj_Usuario.contraseña = txt_Contraseña.Text
            obj_Usuario.idgrupo = cbo_Grupo.EditValue
            obj_Usuario.esroot = chk_esroot.Checked

            'Guardo Tercero--------------------------------------------------------
            If IsNothing(obj_Usuario.tercero) Then
                obj_Usuario.tercero = New cls_tercero_
            End If
            obj_Usuario.tercero.nombres = txt_Nombres.Text
            obj_Usuario.tercero.apellido = txt_Apellido.Text
            obj_Usuario.tercero.numeroducumento = txt_NumeroDocumento.Text
            obj_Usuario.tercero.idtipodocumento = cbo_TipoDocumento.EditValue
            '---------------------------------------------------------------------

            If txt_ID.Text = "" Then
                obj_Usuario.tercero.tipo = cls_tercero_.enu_tipotercero.Usuario
                obj_Usuario.tercero.Nuevo()
                obj_Usuario.idtercero = obj_Usuario.tercero.idtercero
                obj_Usuario.Nuevo(True)
                If frm_listado.Visible Then
                    ulg_row = CType(frm_listado, xtf_LISTADOusuario_).AgregarItem(obj_Usuario)
                End If
                Modificar(obj_Usuario, frm_listado, ulg_row)
            Else
                obj_Usuario.tercero.Modificar()
                obj_Usuario.Modificar()
                If frm_listado.Visible Then
                    CType(frm_listado, xtf_LISTADOusuario_).ModificarItem(obj_Usuario, ulg_row)
                End If
                Modificar(obj_Usuario, frm_listado, ulg_row)
            End If
            flg_Modificado = False : btn_Guardar.Enabled = False : bbi_guardar.Enabled = False
        End If
    End Sub

    Private Sub btn_Registro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Registro.Click
        If Not IsNothing(obj_Usuario.tercero.registro) Then
            Dim ABMRegistro As New xtf_ABMRegistro(obj_Usuario.tercero.registro)
            If ABMRegistro.ShowDialog() = Windows.Forms.DialogResult.OK Then
                flg_Modificado = True
            End If
        End If
    End Sub


    Private Sub btn_Cerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Cerrar.Click
        If flg_Modificado Then
            bol_comprobarCerrado = False
            Select Case ErrManagerShow("000001", Me)
                Case Windows.Forms.DialogResult.Yes
                    If ComprobarDatos() Then
                        btn_Guardar_Click(Nothing, Nothing)
                    Else
                        Exit Sub
                    End If
                Case Windows.Forms.DialogResult.Cancel : bol_comprobarCerrado = True
                    Exit Sub
            End Select
        End If
        Me.Dispose()
    End Sub

    Private Sub chk_contraseña2_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chk_contraseña2.CheckedChanged
        If chk_contraseña2.Checked Then
            txt_Contraseña2.Properties.PasswordChar = ""
        Else
            txt_Contraseña2.Properties.PasswordChar = "*"
        End If
    End Sub

    Private Sub chk_contraseña_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chk_contraseña.CheckedChanged
        If chk_contraseña.Checked Then
            txt_Contraseña.Properties.PasswordChar = ""
        Else
            txt_Contraseña.Properties.PasswordChar = "*"
        End If
    End Sub

    Private Sub txt_Usuario_EditValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt_Usuario.EditValueChanged

    End Sub

  
End Class